package com.ocp.macro.mapper.dealer;

import com.ocp.macro.entity.*;

import java.util.List;

public interface DealListMapper {
    /**
     *
     * 实现：孙历
     * 获取经销商ID与经销商信息的关联表的经销商编号
     * @param dealAccountId (经销商ID)
     * @return 经销商编号，通过数组封装
     */
    List<String> dealerAccList(int dealAccountId);


    /**
     * 实现：孙历
     * 获取会员信息
     * @param dealno (会员信息表的多个ID)
     * @return 会员详细信息，通过集合List封装
     */
    List<DealList> dealerInfo(List<String> dealno);

    /**
     * 实现：孙历
     * 获取经销商收货信息，
     * @param dealAccountId (经销商ID)
     * @return　收货详细信息，集合List封装
     */
    List<Address> addressInfo(int dealAccountId);

    /**
     * 实现：孙历
     * 验证旧密码，
     * @param dealAccountId 账号ID
     * @return　旧密码
     */
    String checkOldPassword(Integer dealAccountId);

    /**
     * 实现：孙历
     * 经销商修改密码
     * @param dealerAccount (经销商ID和经销商新密码)
     * @return 修改信息条数，Integer类返回
     */
    Integer modifyPwd(DealerAccount dealerAccount);

    /**
     * 实现：孙历
     * 获取与客户信息关联表的客户ID
     * @param dealAccountId (经销商ID)
     * @return 客户关联的ID，集合Integer封装
     */
    List<Integer> dealAccCust(int dealAccountId);

    /**
     * 实现:孙历
     *获取客户信息
     * @param custId (客户表ID)
     * @return 客户信息，通过List集合封装
     */
    List<CustomerList> cusInfo(List<Integer> custId);

    /**
     * 实现：孙历
     * 请求将所选的 经销商子账号 进行 关联经销商信息
     * @param realNos
     * @param subAcctId
     * @return
     */
    Integer addDealerAccountListRel(List<String> realNos,Integer subAcctId);
    /**
     * author beichuan
     * 根据dealList中的筛选条件进行查询经销商信息
     * @param dealList 封装了查询条件的对象
     * @return 经销商信息
     */
    List<DealList> getDealerListInfoByDealerAccountId(DealList dealList);

    /**
     * 删除经销商信息关联信息
     * @param dealerAccountId 经销商账号id
     * @return 影响行数
     */
    Integer deleteDealerAccountRelDealListInfo(Integer dealerAccountId, String dealNo);

    /**
     * 实现：孙历
     * 修改经销商信息状态
     * @param dealRelNos 经销商信息id
     * @param state 状态：0：禁用，1：未关联任何账号，2 ：关联了账号
     * @return 影响行数
     */
    Integer updateDealerListState(List<String> dealRelNos, Integer state);

    /**
     * 实现：孙历
     * 获取与dealerAccountId关联的经销商信息编号
     * @param dealerAccountId 经销商账号id
     * @return 编号列表
     */
    List<String> getDealerNoByDealerAccountId(Integer dealerAccountId, String dealNo);



}
